package org.gg.boom.modules.sys.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.gg.boom.kernel.config.factory.PageFactory;
import org.gg.boom.modules.sys.mapper.SysNoticeMapper;
import org.gg.boom.modules.sys.model.entity.SysNotice;
import org.gg.boom.modules.sys.model.param.SysNoticeParam;
import org.gg.boom.modules.sys.model.vo.SysNoticeResult;
import org.springframework.stereotype.Service;

/**
 * 公告 服务层实现
 */
@Service
public class SysNoticeService extends ServiceImpl<SysNoticeMapper, SysNotice> {

    /**
     * 查询公告信息
     *
     * @param noticeId 公告ID
     * @return 公告信息
     */
    public SysNotice selectNoticeById(Long noticeId) {
        return baseMapper.selectNoticeById(noticeId);
    }

    /**
     * 查询公告列表
     *
     * @param param 公告信息
     * @return 公告集合
     */
    public Page<SysNoticeResult> selectNoticeList(SysNoticeParam param) {
        return baseMapper.selectNoticeList(PageFactory.defaultPage(), param);
    }

    /**
     * 新增公告
     *
     * @param notice 公告信息
     * @return 结果
     */
    public int insertNotice(SysNotice notice) {
        return baseMapper.insertNotice(notice);
    }

    /**
     * 修改公告
     *
     * @param notice 公告信息
     * @return 结果
     */
    public int updateNotice(SysNotice notice) {
        return baseMapper.updateNotice(notice);
    }

    /**
     * 删除公告对象
     *
     * @param noticeId 公告ID
     * @return 结果
     */
    public int deleteNoticeById(Long noticeId) {
        return baseMapper.deleteNoticeById(noticeId);
    }

    /**
     * 批量删除公告信息
     *
     * @param noticeIds 需要删除的公告ID
     * @return 结果
     */
    public int deleteNoticeByIds(Long[] noticeIds) {
        return baseMapper.deleteNoticeByIds(noticeIds);
    }
}
